// Generated from ./TodoLangGrammar.g4 by ANTLR 4.9.0-SNAPSHOT


import { ATN } from "antlr4ts/atn/ATN";
import { ATNDeserializer } from "antlr4ts/atn/ATNDeserializer";
import { CharStream } from "antlr4ts/CharStream";
import { Lexer } from "antlr4ts/Lexer";
import { LexerATNSimulator } from "antlr4ts/atn/LexerATNSimulator";
import { NotNull } from "antlr4ts/Decorators";
import { Override } from "antlr4ts/Decorators";
import { RuleContext } from "antlr4ts/RuleContext";
import { Vocabulary } from "antlr4ts/Vocabulary";
import { VocabularyImpl } from "antlr4ts/VocabularyImpl";

import * as Utils from "antlr4ts/misc/Utils";


export class TodoLangGrammarLexer extends Lexer {
	public static readonly T__0 = 1;
	public static readonly T__1 = 2;
	public static readonly T__2 = 3;
	public static readonly T__3 = 4;
	public static readonly T__4 = 5;
	public static readonly T__5 = 6;
	public static readonly T__6 = 7;
	public static readonly T__7 = 8;
	public static readonly T__8 = 9;
	public static readonly T__9 = 10;
	public static readonly T__10 = 11;
	public static readonly T__11 = 12;
	public static readonly T__12 = 13;
	public static readonly T__13 = 14;
	public static readonly T__14 = 15;
	public static readonly T__15 = 16;
	public static readonly T__16 = 17;
	public static readonly T__17 = 18;
	public static readonly T__18 = 19;
	public static readonly OPER = 20;
	public static readonly OP = 21;
	public static readonly CELL = 22;
	public static readonly ORDER = 23;
	public static readonly BOOLEAN = 24;
	public static readonly COLON = 25;
	public static readonly COMMA = 26;
	public static readonly NULL = 27;
	public static readonly LeftP = 28;
	public static readonly RightP = 29;
	public static readonly COLUMN = 30;
	public static readonly STRING = 31;
	public static readonly AND = 32;
	public static readonly OR = 33;
	public static readonly INT = 34;
	public static readonly NUMBER = 35;
	public static readonly NOT = 36;
	public static readonly IDEN = 37;
	public static readonly LET = 38;
	public static readonly CHAR = 39;
	public static readonly DIG = 40;
	public static readonly CHINAMARKS = 41;
	public static readonly WS = 42;
	public static readonly NL = 43;

	// tslint:disable:no-trailing-whitespace
	public static readonly channelNames: string[] = [
		"DEFAULT_TOKEN_CHANNEL", "HIDDEN",
	];

	// tslint:disable:no-trailing-whitespace
	public static readonly modeNames: string[] = [
		"DEFAULT_MODE",
	];

	public static readonly ruleNames: string[] = [
		"T__0", "T__1", "T__2", "T__3", "T__4", "T__5", "T__6", "T__7", "T__8", 
		"T__9", "T__10", "T__11", "T__12", "T__13", "T__14", "T__15", "T__16", 
		"T__17", "T__18", "OPER", "OP", "CELL", "ORDER", "BOOLEAN", "COLON", "COMMA", 
		"NULL", "LeftP", "RightP", "COLUMN", "STRING", "AND", "OR", "INT", "NUMBER", 
		"NOT", "IDEN", "LET", "CHAR", "DIG", "CHINAMARKS", "COLUMNCHAR", "CONTENT", 
		"ESCAPE", "OCTAL", "UNICODE", "HEX", "SChar", "WS", "NL",
	];

	private static readonly _LITERAL_NAMES: Array<string | undefined> = [
		undefined, "'?'", "'case'", "'{'", "'}'", "'if'", "'else'", "'return'", 
		"';'", "'var'", "'='", "'&'", "'$'", "'#'", "'.'", "'cell'", "'['", "']'", 
		"'to'", "'@'", undefined, undefined, undefined, undefined, undefined, 
		"':'", "','", "'null'", "'('", "')'", undefined, undefined, undefined, 
		undefined, undefined, undefined, "'!'",
	];
	private static readonly _SYMBOLIC_NAMES: Array<string | undefined> = [
		undefined, undefined, undefined, undefined, undefined, undefined, undefined, 
		undefined, undefined, undefined, undefined, undefined, undefined, undefined, 
		undefined, undefined, undefined, undefined, undefined, undefined, "OPER", 
		"OP", "CELL", "ORDER", "BOOLEAN", "COLON", "COMMA", "NULL", "LeftP", "RightP", 
		"COLUMN", "STRING", "AND", "OR", "INT", "NUMBER", "NOT", "IDEN", "LET", 
		"CHAR", "DIG", "CHINAMARKS", "WS", "NL",
	];
	public static readonly VOCABULARY: Vocabulary = new VocabularyImpl(TodoLangGrammarLexer._LITERAL_NAMES, TodoLangGrammarLexer._SYMBOLIC_NAMES, []);

	// @Override
	// @NotNull
	public get vocabulary(): Vocabulary {
		return TodoLangGrammarLexer.VOCABULARY;
	}
	// tslint:enable:no-trailing-whitespace


	constructor(input: CharStream) {
		super(input);
		this._interp = new LexerATNSimulator(TodoLangGrammarLexer._ATN, this);
	}

	// @Override
	public get grammarFileName(): string { return "TodoLangGrammar.g4"; }

	// @Override
	public get ruleNames(): string[] { return TodoLangGrammarLexer.ruleNames; }

	// @Override
	public get serializedATN(): string { return TodoLangGrammarLexer._serializedATN; }

	// @Override
	public get channelNames(): string[] { return TodoLangGrammarLexer.channelNames; }

	// @Override
	public get modeNames(): string[] { return TodoLangGrammarLexer.modeNames; }

	public static readonly _serializedATN: string =
		"\x03\uC91D\uCABA\u058D\uAFBA\u4F53\u0607\uEA8B\uC241\x02-\u0169\b\x01" +
		"\x04\x02\t\x02\x04\x03\t\x03\x04\x04\t\x04\x04\x05\t\x05\x04\x06\t\x06" +
		"\x04\x07\t\x07\x04\b\t\b\x04\t\t\t\x04\n\t\n\x04\v\t\v\x04\f\t\f\x04\r" +
		"\t\r\x04\x0E\t\x0E\x04\x0F\t\x0F\x04\x10\t\x10\x04\x11\t\x11\x04\x12\t" +
		"\x12\x04\x13\t\x13\x04\x14\t\x14\x04\x15\t\x15\x04\x16\t\x16\x04\x17\t" +
		"\x17\x04\x18\t\x18\x04\x19\t\x19\x04\x1A\t\x1A\x04\x1B\t\x1B\x04\x1C\t" +
		"\x1C\x04\x1D\t\x1D\x04\x1E\t\x1E\x04\x1F\t\x1F\x04 \t \x04!\t!\x04\"\t" +
		"\"\x04#\t#\x04$\t$\x04%\t%\x04&\t&\x04\'\t\'\x04(\t(\x04)\t)\x04*\t*\x04" +
		"+\t+\x04,\t,\x04-\t-\x04.\t.\x04/\t/\x040\t0\x041\t1\x042\t2\x043\t3\x03" +
		"\x02\x03\x02\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x04\x03\x04\x03" +
		"\x05\x03\x05\x03\x06\x03\x06\x03\x06\x03\x07\x03\x07\x03\x07\x03\x07\x03" +
		"\x07\x03\b\x03\b\x03\b\x03\b\x03\b\x03\b\x03\b\x03\t\x03\t\x03\n\x03\n" +
		"\x03\n\x03\n\x03\v\x03\v\x03\f\x03\f\x03\r\x03\r\x03\x0E\x03\x0E\x03\x0F" +
		"\x03\x0F\x03\x10\x03\x10\x03\x10\x03\x10\x03\x10\x03\x11\x03\x11\x03\x12" +
		"\x03\x12\x03\x13\x03\x13\x03\x13\x03\x14\x03\x14\x03\x15\x03\x15\x03\x16" +
		"\x03\x16\x03\x16\x03\x16\x03\x16\x03\x16\x03\x16\x03\x16\x03\x16\x03\x16" +
		"\x03\x16\x03\x16\x03\x16\x03\x16\x03\x16\x03\x16\x03\x16\x03\x16\x03\x16" +
		"\x03\x16\x03\x16\x05\x16\xB7\n\x16\x03\x17\x03\x17\x06\x17\xBB\n\x17\r" +
		"\x17\x0E\x17\xBC\x03\x18\x03\x18\x03\x18\x03\x18\x03\x18\x03\x18\x03\x18" +
		"\x05\x18\xC6\n\x18\x03\x19\x03\x19\x03\x19\x03\x19\x03\x19\x03\x19\x03" +
		"\x19\x03\x19\x03\x19\x05\x19\xD1\n\x19\x03\x1A\x03\x1A\x03\x1B\x03\x1B" +
		"\x03\x1C\x03\x1C\x03\x1C\x03\x1C\x03\x1C\x03\x1D\x03\x1D\x03\x1E\x03\x1E" +
		"\x03\x1F\x03\x1F\x07\x1F\xE2\n\x1F\f\x1F\x0E\x1F\xE5\v\x1F\x03\x1F\x03" +
		"\x1F\x03 \x03 \x03 \x03 \x03!\x03!\x03!\x03!\x03!\x05!\xF2\n!\x03\"\x03" +
		"\"\x03\"\x03\"\x05\"\xF8\n\"\x03#\x05#\xFB\n#\x03#\x06#\xFE\n#\r#\x0E" +
		"#\xFF\x03$\x05$\u0103\n$\x03$\x06$\u0106\n$\r$\x0E$\u0107\x03$\x03$\x06" +
		"$\u010C\n$\r$\x0E$\u010D\x03$\x05$\u0111\n$\x03$\x06$\u0114\n$\r$\x0E" +
		"$\u0115\x05$\u0118\n$\x03%\x03%\x03&\x03&\x07&\u011E\n&\f&\x0E&\u0121" +
		"\v&\x03\'\x06\'\u0124\n\'\r\'\x0E\'\u0125\x03(\x03(\x03(\x03(\x05(\u012C" +
		"\n(\x03)\x03)\x03*\x03*\x03+\x03+\x03+\x03+\x05+\u0136\n+\x03,\x03,\x07" +
		",\u013A\n,\f,\x0E,\u013D\v,\x03-\x03-\x03-\x03-\x05-\u0143\n-\x03.\x03" +
		".\x03.\x03.\x03.\x03.\x03.\x03.\x03.\x05.\u014E\n.\x03/\x03/\x03/\x03" +
		"/\x03/\x03/\x03/\x030\x030\x031\x051\u015A\n1\x032\x062\u015D\n2\r2\x0E" +
		"2\u015E\x032\x032\x033\x053\u0164\n3\x033\x033\x033\x033\x02\x02\x024" +
		"\x03\x02\x03\x05\x02\x04\x07\x02\x05\t\x02\x06\v\x02\x07\r\x02\b\x0F\x02" +
		"\t\x11\x02\n\x13\x02\v\x15\x02\f\x17\x02\r\x19\x02\x0E\x1B\x02\x0F\x1D" +
		"\x02\x10\x1F\x02\x11!\x02\x12#\x02\x13%\x02\x14\'\x02\x15)\x02\x16+\x02" +
		"\x17-\x02\x18/\x02\x191\x02\x1A3\x02\x1B5\x02\x1C7\x02\x1D9\x02\x1E;\x02" +
		"\x1F=\x02 ?\x02!A\x02\"C\x02#E\x02$G\x02%I\x02&K\x02\'M\x02(O\x02)Q\x02" +
		"*S\x02+U\x02\x02W\x02\x02Y\x02\x02[\x02\x02]\x02\x02_\x02\x02a\x02\x02" +
		"c\x02,e\x02-\x03\x02\x0F\x06\x02\'\',-//11\x04\x02>>@@\x03\x02C\\\x05" +
		"\x02\xB9\xB9\u0302\u0371\u2041\u2042\x03\x022;\b\x02\u2015\u2016\u201A" +
		"\u201B\u201E\u201F\u3003\u3003\uFF02\uFF11\uFF1C\uFF22\x06\x02/0]]__a" +
		"a\x05\x02\"\"\xA2\xA2\u3002\u3002\x04\x02$$))\n\x02$$))^^ddhhppttvv\x05" +
		"\x022;CHch\v\x02C\\c|\u2072\u2191\u2C02\u2FF1\u3003\uD801\uF902\uFDD1" +
		"\uFDF2\uFF00\uFF12\uFF1B\uFF23\x01\x05\x02\v\f\x0F\x0F\"\"\x02\u0186\x02" +
		"\x03\x03\x02\x02\x02\x02\x05\x03\x02\x02\x02\x02\x07\x03\x02\x02\x02\x02" +
		"\t\x03\x02\x02\x02\x02\v\x03\x02\x02\x02\x02\r\x03\x02\x02\x02\x02\x0F" +
		"\x03\x02\x02\x02\x02\x11\x03\x02\x02\x02\x02\x13\x03\x02\x02\x02\x02\x15" +
		"\x03\x02\x02\x02\x02\x17\x03\x02\x02\x02\x02\x19\x03\x02\x02\x02\x02\x1B" +
		"\x03\x02\x02\x02\x02\x1D\x03\x02\x02\x02\x02\x1F\x03\x02\x02\x02\x02!" +
		"\x03\x02\x02\x02\x02#\x03\x02\x02\x02\x02%\x03\x02\x02\x02\x02\'\x03\x02" +
		"\x02\x02\x02)\x03\x02\x02\x02\x02+\x03\x02\x02\x02\x02-\x03\x02\x02\x02" +
		"\x02/\x03\x02\x02\x02\x021\x03\x02\x02\x02\x023\x03\x02\x02\x02\x025\x03" +
		"\x02\x02\x02\x027\x03\x02\x02\x02\x029\x03\x02\x02\x02\x02;\x03\x02\x02" +
		"\x02\x02=\x03\x02\x02\x02\x02?\x03\x02\x02\x02\x02A\x03\x02\x02\x02\x02" +
		"C\x03\x02\x02\x02\x02E\x03\x02\x02\x02\x02G\x03\x02\x02\x02\x02I\x03\x02" +
		"\x02\x02\x02K\x03\x02\x02\x02\x02M\x03\x02\x02\x02\x02O\x03\x02\x02\x02" +
		"\x02Q\x03\x02\x02\x02\x02S\x03\x02\x02\x02\x02c\x03\x02\x02\x02\x02e\x03" +
		"\x02\x02\x02\x03g\x03\x02\x02\x02\x05i\x03\x02\x02\x02\x07n\x03\x02\x02" +
		"\x02\tp\x03\x02\x02\x02\vr\x03\x02\x02\x02\ru\x03\x02\x02\x02\x0Fz\x03" +
		"\x02\x02\x02\x11\x81\x03\x02\x02\x02\x13\x83\x03\x02\x02\x02\x15\x87\x03" +
		"\x02\x02\x02\x17\x89\x03\x02\x02\x02\x19\x8B\x03\x02\x02\x02\x1B\x8D\x03" +
		"\x02\x02\x02\x1D\x8F\x03\x02\x02\x02\x1F\x91\x03\x02\x02\x02!\x96\x03" +
		"\x02\x02\x02#\x98\x03\x02\x02\x02%\x9A\x03\x02\x02\x02\'\x9D\x03\x02\x02" +
		"\x02)\x9F\x03\x02\x02\x02+\xB6\x03\x02\x02\x02-\xB8\x03\x02\x02\x02/\xC5" +
		"\x03\x02\x02\x021\xD0\x03\x02\x02\x023\xD2\x03\x02\x02\x025\xD4\x03\x02" +
		"\x02\x027\xD6\x03\x02\x02\x029\xDB\x03\x02\x02\x02;\xDD\x03\x02\x02\x02" +
		"=\xDF\x03\x02\x02\x02?\xE8\x03\x02\x02\x02A\xF1\x03\x02\x02\x02C\xF7\x03" +
		"\x02\x02\x02E\xFA\x03\x02\x02\x02G\u0117\x03\x02\x02\x02I\u0119\x03\x02" +
		"\x02\x02K\u011B\x03\x02\x02\x02M\u0123\x03\x02\x02\x02O\u012B\x03\x02" +
		"\x02\x02Q\u012D\x03\x02\x02\x02S\u012F\x03\x02\x02\x02U\u0135\x03\x02" +
		"\x02\x02W\u013B\x03\x02\x02\x02Y\u0142\x03\x02\x02\x02[\u014D\x03\x02" +
		"\x02\x02]\u014F\x03\x02\x02\x02_\u0156\x03\x02\x02\x02a\u0159\x03\x02" +
		"\x02\x02c\u015C\x03\x02\x02\x02e\u0163\x03\x02\x02\x02gh\x07A\x02\x02" +
		"h\x04\x03\x02\x02\x02ij\x07e\x02\x02jk\x07c\x02\x02kl\x07u\x02\x02lm\x07" +
		"g\x02\x02m\x06\x03\x02\x02\x02no\x07}\x02\x02o\b\x03\x02\x02\x02pq\x07" +
		"\x7F\x02\x02q\n\x03\x02\x02\x02rs\x07k\x02\x02st\x07h\x02\x02t\f\x03\x02" +
		"\x02\x02uv\x07g\x02\x02vw\x07n\x02\x02wx\x07u\x02\x02xy\x07g\x02\x02y" +
		"\x0E\x03\x02\x02\x02z{\x07t\x02\x02{|\x07g\x02\x02|}\x07v\x02\x02}~\x07" +
		"w\x02\x02~\x7F\x07t\x02\x02\x7F\x80\x07p\x02\x02\x80\x10\x03\x02\x02\x02" +
		"\x81\x82\x07=\x02\x02\x82\x12\x03\x02\x02\x02\x83\x84\x07x\x02\x02\x84" +
		"\x85\x07c\x02\x02\x85\x86\x07t\x02\x02\x86\x14\x03\x02\x02\x02\x87\x88" +
		"\x07?\x02\x02\x88\x16\x03\x02\x02\x02\x89\x8A\x07(\x02\x02\x8A\x18\x03" +
		"\x02\x02\x02\x8B\x8C\x07&\x02\x02\x8C\x1A\x03\x02\x02\x02\x8D\x8E\x07" +
		"%\x02\x02\x8E\x1C\x03\x02\x02\x02\x8F\x90\x070\x02\x02\x90\x1E\x03\x02" +
		"\x02\x02\x91\x92\x07e\x02\x02\x92\x93\x07g\x02\x02\x93\x94\x07n\x02\x02" +
		"\x94\x95\x07n\x02\x02\x95 \x03\x02\x02\x02\x96\x97\x07]\x02\x02\x97\"" +
		"\x03\x02\x02\x02\x98\x99\x07_\x02\x02\x99$\x03\x02\x02\x02\x9A\x9B\x07" +
		"v\x02\x02\x9B\x9C\x07q\x02\x02\x9C&\x03\x02\x02\x02\x9D\x9E\x07B\x02\x02" +
		"\x9E(\x03\x02\x02\x02\x9F\xA0\t\x02\x02\x02\xA0*\x03\x02\x02\x02\xA1\xB7" +
		"\t\x03\x02\x02\xA2\xA3\x07?\x02\x02\xA3\xB7\x07?\x02\x02\xA4\xA5\x07#" +
		"\x02\x02\xA5\xB7\x07?\x02\x02\xA6\xA7\x07@\x02\x02\xA7\xB7\x07?\x02\x02" +
		"\xA8\xA9\x07>\x02\x02\xA9\xB7\x07?\x02\x02\xAA\xAB\x07k\x02\x02\xAB\xB7" +
		"\x07p\x02\x02\xAC\xAD\x07p\x02\x02\xAD\xAE\x07q\x02\x02\xAE\xAF\x07v\x02" +
		"\x02\xAF\xB0\x07\"\x02\x02\xB0\xB1\x07k\x02\x02\xB1\xB7\x07p\x02\x02\xB2" +
		"\xB3\x07n\x02\x02\xB3\xB4\x07k\x02\x02\xB4\xB5\x07m\x02\x02\xB5\xB7\x07" +
		"g\x02\x02\xB6\xA1\x03\x02\x02\x02\xB6\xA2\x03\x02\x02\x02\xB6\xA4\x03" +
		"\x02\x02\x02\xB6\xA6\x03\x02\x02\x02\xB6\xA8\x03\x02\x02\x02\xB6\xAA\x03" +
		"\x02\x02\x02\xB6\xAC\x03\x02\x02\x02\xB6\xB2\x03\x02\x02\x02\xB7,\x03" +
		"\x02\x02\x02\xB8\xBA\x05M\'\x02\xB9\xBB\x05Q)\x02\xBA\xB9\x03\x02\x02" +
		"\x02\xBB\xBC\x03\x02\x02\x02\xBC\xBA\x03\x02\x02\x02\xBC\xBD\x03\x02\x02" +
		"\x02\xBD.\x03\x02\x02\x02\xBE\xBF\x07f\x02\x02\xBF\xC0\x07g\x02\x02\xC0" +
		"\xC1\x07u\x02\x02\xC1\xC6\x07e\x02\x02\xC2\xC3\x07c\x02\x02\xC3\xC4\x07" +
		"u\x02\x02\xC4\xC6\x07e\x02\x02\xC5\xBE\x03\x02\x02\x02\xC5\xC2\x03\x02" +
		"\x02\x02\xC60\x03\x02\x02\x02\xC7\xC8\x07v\x02\x02\xC8\xC9\x07t\x02\x02" +
		"\xC9\xCA\x07w\x02\x02\xCA\xD1\x07g\x02\x02\xCB\xCC\x07h\x02\x02\xCC\xCD" +
		"\x07c\x02\x02\xCD\xCE\x07n\x02\x02\xCE\xCF\x07u\x02\x02\xCF\xD1\x07g\x02" +
		"\x02\xD0\xC7\x03\x02\x02\x02\xD0\xCB\x03\x02\x02\x02\xD12\x03\x02\x02" +
		"\x02\xD2\xD3\x07<\x02\x02\xD34\x03\x02\x02\x02\xD4\xD5\x07.\x02\x02\xD5" +
		"6\x03\x02\x02\x02\xD6\xD7\x07p\x02\x02\xD7\xD8\x07w\x02\x02\xD8\xD9\x07" +
		"n\x02\x02\xD9\xDA\x07n\x02\x02\xDA8\x03\x02\x02\x02\xDB\xDC\x07*\x02\x02" +
		"\xDC:\x03\x02\x02\x02\xDD\xDE\x07+\x02\x02\xDE<\x03\x02\x02\x02\xDF\xE3" +
		"\x07b\x02\x02\xE0\xE2\x05U+\x02\xE1\xE0\x03\x02\x02\x02\xE2\xE5\x03\x02" +
		"\x02\x02\xE3\xE1\x03\x02\x02\x02\xE3\xE4\x03\x02\x02\x02\xE4\xE6\x03\x02" +
		"\x02\x02\xE5\xE3\x03\x02\x02\x02\xE6\xE7\x07b\x02\x02\xE7>\x03\x02\x02" +
		"\x02\xE8\xE9\x07)\x02\x02\xE9\xEA\x05W,\x02\xEA\xEB\x07)\x02\x02\xEB@" +
		"\x03\x02\x02\x02\xEC\xED\x07c\x02\x02\xED\xEE\x07p\x02\x02\xEE\xF2\x07" +
		"f\x02\x02\xEF\xF0\x07(\x02\x02\xF0\xF2\x07(\x02\x02\xF1\xEC\x03\x02\x02" +
		"\x02\xF1\xEF\x03\x02\x02\x02\xF2B\x03\x02\x02\x02\xF3\xF4\x07q\x02\x02" +
		"\xF4\xF8\x07t\x02\x02\xF5\xF6\x07~\x02\x02\xF6\xF8\x07~\x02\x02\xF7\xF3" +
		"\x03\x02\x02\x02\xF7\xF5\x03\x02\x02\x02\xF8D\x03\x02\x02\x02\xF9\xFB" +
		"\x07/\x02\x02\xFA\xF9\x03\x02\x02\x02\xFA\xFB\x03\x02\x02\x02\xFB\xFD" +
		"\x03\x02\x02\x02\xFC\xFE\x05Q)\x02\xFD\xFC\x03\x02\x02\x02\xFE\xFF\x03" +
		"\x02\x02\x02\xFF\xFD\x03\x02\x02\x02\xFF\u0100\x03\x02\x02\x02\u0100F" +
		"\x03\x02\x02\x02\u0101\u0103\x07/\x02\x02\u0102\u0101\x03\x02\x02\x02" +
		"\u0102\u0103\x03\x02\x02\x02\u0103\u0105\x03\x02\x02\x02\u0104\u0106\x05" +
		"Q)\x02\u0105\u0104\x03\x02\x02\x02\u0106\u0107\x03\x02\x02\x02\u0107\u0105" +
		"\x03\x02\x02\x02\u0107\u0108\x03\x02\x02\x02\u0108\u0109\x03\x02\x02\x02" +
		"\u0109\u010B\x070\x02\x02\u010A\u010C\x05Q)\x02\u010B\u010A\x03\x02\x02" +
		"\x02\u010C\u010D\x03\x02\x02\x02\u010D\u010B\x03\x02\x02\x02\u010D\u010E" +
		"\x03\x02\x02\x02\u010E\u0118\x03\x02\x02\x02\u010F\u0111\x07/\x02\x02" +
		"\u0110\u010F\x03\x02\x02\x02\u0110\u0111\x03\x02\x02\x02\u0111\u0113\x03" +
		"\x02\x02\x02\u0112\u0114\x05Q)\x02\u0113\u0112\x03\x02\x02\x02\u0114\u0115" +
		"\x03\x02\x02\x02\u0115\u0113\x03\x02\x02\x02\u0115\u0116\x03\x02\x02\x02" +
		"\u0116\u0118\x03\x02\x02\x02\u0117\u0102\x03\x02\x02\x02\u0117\u0110\x03" +
		"\x02\x02\x02\u0118H\x03\x02\x02\x02\u0119\u011A\x07#\x02\x02\u011AJ\x03" +
		"\x02\x02\x02\u011B\u011F\x05a1\x02\u011C\u011E\x05O(\x02\u011D\u011C\x03" +
		"\x02\x02\x02\u011E\u0121\x03\x02\x02\x02\u011F\u011D\x03\x02\x02\x02\u011F" +
		"\u0120\x03\x02\x02\x02\u0120L\x03\x02\x02\x02\u0121\u011F\x03\x02\x02" +
		"\x02\u0122\u0124\t\x04\x02\x02\u0123\u0122\x03\x02\x02\x02\u0124\u0125" +
		"\x03\x02\x02\x02\u0125\u0123\x03\x02\x02\x02\u0125\u0126\x03\x02\x02\x02" +
		"\u0126N\x03\x02\x02\x02\u0127\u012C\x05a1\x02\u0128\u012C\x07a\x02\x02" +
		"\u0129\u012C\x05Q)\x02\u012A\u012C\t\x05\x02\x02\u012B\u0127\x03\x02\x02" +
		"\x02\u012B\u0128\x03\x02\x02\x02\u012B\u0129\x03\x02\x02\x02\u012B\u012A" +
		"\x03\x02\x02\x02\u012CP\x03\x02\x02\x02\u012D\u012E\t\x06\x02\x02\u012E" +
		"R\x03\x02\x02\x02\u012F\u0130\t\x07\x02\x02\u0130T\x03\x02\x02\x02\u0131" +
		"\u0136\x05O(\x02\u0132\u0136\t\b\x02\x02\u0133\u0136\x05Q)\x02\u0134\u0136" +
		"\t\t\x02\x02\u0135\u0131\x03\x02\x02\x02\u0135\u0132\x03\x02\x02\x02\u0135" +
		"\u0133\x03\x02\x02\x02\u0135\u0134\x03\x02\x02\x02\u0136V\x03\x02\x02" +
		"\x02\u0137\u013A\x05Y-\x02\u0138\u013A\n\n\x02\x02\u0139\u0137\x03\x02" +
		"\x02\x02\u0139\u0138\x03\x02\x02\x02\u013A\u013D\x03\x02\x02\x02\u013B" +
		"\u0139\x03\x02\x02\x02\u013B\u013C\x03\x02\x02\x02\u013CX\x03\x02\x02" +
		"\x02\u013D\u013B\x03\x02\x02\x02\u013E\u013F\x07^\x02\x02\u013F\u0143" +
		"\t\v\x02\x02\u0140\u0143\x05]/\x02\u0141\u0143\x05[.\x02\u0142\u013E\x03" +
		"\x02\x02\x02\u0142\u0140\x03\x02\x02\x02\u0142\u0141\x03\x02\x02\x02\u0143" +
		"Z\x03\x02\x02\x02\u0144\u0145\x07^\x02\x02\u0145\u0146\x0425\x02\u0146" +
		"\u0147\x0429\x02\u0147\u014E\x0429\x02\u0148\u0149\x07^\x02\x02\u0149" +
		"\u014A\x0429\x02\u014A\u014E\x0429\x02\u014B\u014C\x07^\x02\x02\u014C" +
		"\u014E\x0429\x02\u014D\u0144\x03\x02\x02\x02\u014D\u0148\x03\x02\x02\x02" +
		"\u014D\u014B\x03\x02\x02\x02\u014E\\\x03\x02\x02\x02\u014F\u0150\x07^" +
		"\x02\x02\u0150\u0151\x07w\x02\x02\u0151\u0152\x05_0\x02\u0152\u0153\x05" +
		"_0\x02\u0153\u0154\x05_0\x02\u0154\u0155\x05_0\x02\u0155^\x03\x02\x02" +
		"\x02\u0156\u0157\t\f\x02\x02\u0157`\x03\x02\x02\x02\u0158\u015A\t\r\x02" +
		"\x02\u0159\u0158\x03\x02\x02\x02\u015Ab\x03\x02\x02\x02\u015B\u015D\t" +
		"\x0E\x02\x02\u015C\u015B\x03\x02\x02\x02\u015D\u015E\x03\x02\x02\x02\u015E" +
		"\u015C\x03\x02\x02\x02\u015E\u015F\x03\x02\x02\x02\u015F\u0160\x03\x02" +
		"\x02\x02\u0160\u0161\b2\x02\x02\u0161d\x03\x02\x02\x02\u0162\u0164\x07" +
		"\x0F\x02\x02\u0163\u0162\x03\x02\x02\x02\u0163\u0164\x03\x02\x02\x02\u0164" +
		"\u0165\x03\x02\x02\x02\u0165\u0166\x07\f\x02\x02\u0166\u0167\x03\x02\x02" +
		"\x02\u0167\u0168\b3\x02\x02\u0168f\x03\x02\x02\x02\x1D\x02\xB6\xBC\xC5" +
		"\xD0\xE3\xF1\xF7\xFA\xFF\u0102\u0107\u010D\u0110\u0115\u0117\u011F\u0125" +
		"\u012B\u0135\u0139\u013B\u0142\u014D\u0159\u015E\u0163\x03\x02\x03\x02";
	public static __ATN: ATN;
	public static get _ATN(): ATN {
		if (!TodoLangGrammarLexer.__ATN) {
			TodoLangGrammarLexer.__ATN = new ATNDeserializer().deserialize(Utils.toCharArray(TodoLangGrammarLexer._serializedATN));
		}

		return TodoLangGrammarLexer.__ATN;
	}

}

